#pragma once
#define TS_SCAN_SIZE 3240
typedef struct {
	double x, y;    // in mm
	double theta;   // in degrees
} ts_position_t;
typedef struct {
	unsigned int timestamp;
	int q1, q2;                // Odometry information
	double v, psidot;          // Used to correct the scans according to the speed of the robot
	ts_position_t position[3]; // 0 : forward - 1 : backward - 2 : final / closed loop
	int d[TS_SCAN_SIZE];
	int intensity[TS_SCAN_SIZE];
	char logtime1[20];
	char logtime2[20];
} ts_sensor_data_t;

typedef struct _node {
	ts_sensor_data_t data;
	struct _node *prior;
	struct _node *next;
}NODE;
typedef struct DoubleLinkList
{
	NODE *head;
	NODE *last;
	int length;
}DLList;


class CReadVerticalScanData
{
public:

	DLList* sd_List;
	char * fileName;
	int ts_read_scans_by_link(const char *filename);
	CReadVerticalScanData();
	~CReadVerticalScanData();
};

